export interface Article {
  id: string
  articleTitle: string
  category: string
  tag: string
  coverImage?: string
  description: string
  nickname: string
  linkUrl?: string
  status: string
  codeStyle: string
  theme: string
  createTime: string
  updateTime?: string
  viewCounts: number
  collectCounts: number
  likeCounts: number
}

export interface Circle {
  id: string
  content: string
  picList: Array<string>
  likeCounts: number
  commentCounts: number
  createTime: string
  nickname: string
}

export interface Feedback {
  id: string
  content: string
  createTime: string
  nickname: string
  likeCount: number
  dislikeCount: number
  giftCount: number
  heartCount: number
  rocketCount: number
  viewCount: number
}

export interface User {
  id: string
  username: string
  nickname: string
  gender: '0' | '1'
  avatar?: string
  email: string
  status: '0' | '1'
  bindPassword: boolean
  bindwx: boolean
  tel: string
  age: number
  job: string
  createTime: string
  updateTime: string
  description: string
}

export interface Dynamic {
  id: string
  username: string
  nickname: string
  articleId: string
  articleTitle: string
  circleContent: string
  circleId: string
  focusUsername: string
  focusUserId: string
  type: '1' | '2' | '3' | '4'
  createTime: string
}

export interface Comment {
  id: string
  articleId?: string
  circleId?: string
  picList?: Array<string>
  replyId: string
  userId: string
  content: string
  createTime: string
  likeCounts: string
  replyComment:string
  topId: string
  replyNickname: string
  replyUserId: string
  nickname: string
  articleTitle?: string
  circleContent?: string
}

export interface Staff {
  id: number
  username: string
  nickname?: string
  gender?: '0' | '1'
  avatar?: string
  email?: string
  status: '0' | '1'
  tel?: string
  age?: number
  createTime: string
  updateTime?: string
  roleIds: Array<number | string>
  roleNames: Array<string>
}

export interface ResourceTree {
  id: number
  name: string
  code: string
  parentId?: number
  type: 'menu' | 'btn'
  sort: number
  children: Array<ResourceTree>
}

export interface Role {
  id: number
  name: string
  status: '0' | '1'
  type: '0' | '1'
  createTime: string
  updateTime?: string
}

export interface LoginLog {
  id: number
  username: string
  nickname: string
  ip: string
  address: string
  loginType: string
  loginTime: string
  status: '0' | '1'
}

export interface Config {
  siteName: string
  recordNo: string
  copyright: string
  version: string
  siteLogo: string
  smtpHost: string
  smtpPort: string
  smtpUsername: string
  smtpPassword: string
  smtpSendEmail: string
}

export interface Tool {
  id: number
  name: string
  logo: string
  url: string
  description: string
  classifyId: number
  classifyName: string
  createTime: string
  updateTime?: string
}

export interface ToolClassify {
  id: number
  name: string
  icon: string
  createTime: string
  updateTime?: string
}

export interface VisitFromC {
  id: number
  ip: string
  city: string
  path: string
  method: string
  date: string
}

export interface FriendLink {
  id: number
  name: string
  logo: string
  link: string
  createTime: string
  updateTime?: string
}

export interface Xmind {
  id: number
  name: string
  cover: string
  nickname: string
  recommend: 0 | 1
  createTime: string
  updateTime?: string
}
